home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 2
/
Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso
/
Aminet
/
gfx
/
show
/
JPEGv42source.lha
/
GC
/
JPEG
/
retina.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-06-13
|
7KB
|
250 lines
#ifndef _INLINE_RETINA_H
#define _INLINE_RETINA_H
#include "retina_defs.h"
/*
__BEGIN_DECLS
*/
#ifndef BASE_EXT_DECL
#ifndef C_ONLY
#define BASE_EXT_DECL
#else
#define BASE_EXT_DECL extern struct Library * RetinaBase;
#endif
#endif
#ifndef BASE_PAR_DECL
#define BASE_PAR_DECL
#define BASE_PAR_DECL0 void
#endif
#ifndef BASE_NAME
#ifndef C_ONLY
#define BASE_NAME RetinaLib::RetinaBase
#else
#define BASE_NAME RetinaBase
#endif
#endif
static __inline struct RetinaScreen *
Retina_OpenScreen (BASE_PAR_DECL unsigned short int width,
unsigned short int height,
unsigned long int ID,
unsigned long int Flags,
struct TagList * Tags
)
{
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
register struct RetinaScreen * res __asm("d0");
register unsigned short int d0 __asm("d0") = width;
register unsigned short int d1 __asm("d1") = height;
register unsigned long int d2 __asm("d2") = ID;
register unsigned long int d3 __asm("d3") = Flags;
register struct TagList * a0 __asm("a0") = Tags;
__asm __volatile ("jsr a6@(-186)"
: "=r" (res)
: "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
: "d0", "memory");
return res;
}
static __inline void
Retina_WriteRect (BASE_PAR_DECL unsigned char * Mem,
unsigned short int MemX,
unsigned short int MemY,
unsigned short int MemWidth,
unsigned long int Mode,
struct RetinaScreen * Scr,
unsigned short int ScrX,
unsigned short int ScrY,
unsigned short int SizeX,
unsigned short int SizeY
)
{
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
register unsigned short int d0 __asm("d0") = MemX;
register unsigned short int d1 __asm("d1") = MemY;
register unsigned short int d2 __asm("d2") = MemWidth;
register unsigned long int d3 __asm("d3") = Mode;
register unsigned short int d4 __asm("d4") = ScrX;
register unsigned short int d5 __asm("d5") = ScrY;
register unsigned short int d6 __asm("d6") = SizeX;
register unsigned short int d7 __asm("d7") = SizeY;
register unsigned char * a0 __asm("a0") = Mem;
register struct RetinaScreen * a1 __asm("a1") = Scr;
__asm __volatile ("jsr a6@(-318)"
: /* "=r" (_res) */
: "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7),
"r" (a0), "r" (a1), "r" (a6)
: "d0", "memory");
/* return res; */
}
static __inline void
Retina_CloseScreen (struct RetinaScreen * Scr) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
register struct RetinaScreen * a0 __asm("a0") = Scr;
__asm __volatile ("jsr a6@(-192)"
: /* "=r" (_res) */
: "r" (a0), "r" (a6)
: "d0", "memory");
/* return res; */
}
static __inline void
Retina_ScreenToFront (struct RetinaScreen * Scr) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
register struct RetinaScreen * a0 __asm("a0") = Scr;
__asm __volatile ("jsr a6@(-198)"
: /* "=r" (_res) */
: "r" (a0), "r" (a6)
: "d0", "memory");
/*return res; */
}
static __inline void
Retina_ScreenToBack (struct RetinaScreen * Scr) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
register struct RetinaScreen * a0 __asm("a0") = Scr;
__asm __volatile ("jsr a6@(-276)"
: /* "=r" (_res) */
: "r" (a0), "r" (a6)
: "d0", "memory");
/*return res; */
}
static __inline void
Retina_SwapBitMap (struct RetinaScreen * Scr) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
register struct RetinaScreen * a0 __asm("a0") = Scr;
__asm __volatile ("jsr a6@(-282)"
: /* "=r" (_res) */
: "r" (a0), "r" (a6)
: "d0", "memory");
/*return res; */
}
static __inline void
Retina_OwnRetina (void) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
__asm __volatile ("jsr a6@(-354)"
: /* "=r" (_res) */
: "r" (a6)
: "memory");
/*return res; */
}
static __inline void
Retina_DisownRetina (void) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
__asm __volatile ("jsr a6@(-360)"
: /* "=r" (_res) */
: "r" (a6)
: "memory");
/*return res; */
}
static __inline void
Retina_WaitTOF (void) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
__asm __volatile ("jsr a6@(-204)"
: /* "=r" (_res) */
: "r" (a6)
: "memory");
/*return res; */
}
static __inline unsigned char *
Retina_SetSegmentPtr ( long adr) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
register unsigned char * _res __asm("d0");
register unsigned long a0 __asm("a0") = adr;
__asm __volatile ("jsr a6@(-150)"
: "=r" (_res)
: "r" (a0), "r" (a6)
: "d0", "memory");
return _res;
}
static __inline struct RetinaMonitor *
Retina_FindMonitor ( unsigned long monid) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
register struct RetinaMonitor * _res __asm("d0");
register unsigned long d0 __asm("d0") = monid;
__asm __volatile ("jsr a6@(-174)"
: "=r" (_res)
: "r" (d0), "r" (a6)
: "d0", "memory");
return _res;
}
static __inline void
Retina_DisplayOff (void) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
__asm __volatile ("jsr a6@(-60)"
: /* "=r" (_res) */
: "r" (a6)
: "memory");
/*return res; */
}
static __inline void
Retina_DisplayOn (void) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
/* register _res __asm("d0"); */
__asm __volatile ("jsr a6@(-66)"
: /* "=r" (_res) */
: "r" (a6)
: "memory");
/*return res; */
}
static __inline void
Retina_LoadPalette (struct RetinaScreen * scr, unsigned short first, unsigned short count, unsigned char * table) {
BASE_EXT_DECL
register struct Library *a6 __asm("a6") = BASE_NAME;
register struct RetinaScreen * a0 __asm("a0") = scr;
register unsigned char * a1 __asm("a1") = table;
register unsigned short d0 __asm("d0") = first;
register unsigned short d1 __asm("d1") = count;
/* register _res __asm("d0"); */
__asm __volatile ("jsr a6@(-138)"
: /* "=r" (_res) */
: "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1)
: "memory");
/*return res; */
}
#undef BASE_EXT_DECL
#undef BASE_PAR_DECL
#undef BASE_PAR_DECL0
#undef BASE_NAME
/*
__END_DECLS
*/
#endif /* _INLINE_RETINA_H */